/* Autore: Nicola Agosti */
/*
Chiedere all'utente di inserire un numero da 1 a 12 che rappresenta un mese dell'anno 
e stampare il numero di giorni corrispondente.
Il programma deve segnalare un errore se l'utente inserisce un numero non valido.
Il programma non tiene conto del problema dell'anno bisestile => Febbraio ha sempre 28 giorni.
*/

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <stdlib.h>

int main()
{
	/* Dichiarazione delle variabili */
	/* ATTENZIONE: fornisco un valore iniziale (inizializzo) la variabile "numeroGiorniNelMese" a 0 */
	int numeroMese, numeroGiorniNelMese = 0;

	/* Input */
	printf("Inserisci il numero del mese [1 - 12]: ");
	scanf("%d", &numeroMese);

	/* 
	SWITCH: è un costrutto che permette di effettuare una selezione multipla in funzione del valore
	della variabile "passata" allo switch.
	*/

	/* Eseguo la selezione multipla in funzione del contenuto della variabile "numeroMese" */
	/* ATTENZIONE a come/quando verrà utilizzata l'istruzione "break"! */
	switch(numeroMese)
	{
	case 4:
	case 6:
	case 9:
	case 11:
		numeroGiorniNelMese = 30;
		break;

	case 1:
	case 3:
	case 5:
	case 7:
	case 8:
	case 10:
	case 12:
		numeroGiorniNelMese = 31;
		break;

	case 2:
		numeroGiorniNelMese = 28;
		break;

	default:
		printf("\nERRORE - E\' stato inserito un valore non valido!");
	}

	/* Visualizzo il risultato */
	/*
	Questo "if" evita che venga eseguita la "printf" quando si è verificato il caso "default".
	Infatti, se si verifica il caso "default" il valore della variabile "numeroGiorniNelMese" è 
	quello di inizializzazione, cioè uguale a 0.
	*/
	if (numeroGiorniNelMese > 0)
	{
		printf("\nIn questo mese ci sono %d giorni.", numeroGiorniNelMese);
	}

	return 0;
}